package com.ruoyi.util;

import java.util.HashMap;
import java.util.Map;

public class ExtractFile {

    public static Map<String, String> extractFields(String pageText) {
        Map<String, String> fields = new HashMap<>();
        String[] lines = pageText.split("\n");

        for (int j = 0; j < lines.length; j++) {


            // 清理表格行：替换连续|为单个|，处理空单元格
            String cleanedLine = lines[j].replaceAll("\\|+", "|").replaceAll("^\\||\\|$", "");
            String[] cells = cleanedLine.split("\\|");
            for (int i = 0; i < cells.length; i++) {
                cells[i] = cells[i].trim();
            }

            // 遍历单元格，适配不同格式的字段
            for (int i = 0; i < cells.length; i++) {
                String currentCell = cells[i];
                // 跳过空单元格
                if (currentCell.isEmpty()) {
                    continue;
                }

                // 匹配程序名称（如{insert\_element\_7\_}中的“程序名称”）
                if (currentCell.contains("程序名称") ) {
                    int index = currentCell.indexOf("机床型号");
                    String name = currentCell.substring(4,index).trim();
                    fields.put("程序名称", name);
                }
                // 匹配材料型号（如{insert\_element\_8\_}中的“材料型号”）
                else if (currentCell.contains("SPCC") || currentCell.contains("SUS304") || currentCell.contains("SUS201")) {
                    fields.put("材料型号", currentCell.toUpperCase());
                }
                // 匹配运行次数（如{insert\_element\_9\_}中的“运行次数”）
                else if (j == 8) {
                    fields.put("运行次数", currentCell);
                }
                // 匹配材料厚度（兼容{insert\_element\_10\_}的“3.00 | mm”和其他格式）
                else if (j == 6) {
                    String numberpart = currentCell.substring(2);
                    String hd = numberpart + "MM";
                    fields.put("材料厚度", hd);
                }
                // 匹配总 路 径（兼容{insert\_element\_12\_}的“92138.51 | mm”和{insert\_element\_13\_}的“230291.47 mm”）
                else if (currentCell.contains("总  路  径")) {
                    int index = currentCell.indexOf("准备时间");
                    String name = currentCell.substring(7,index).trim();
                    fields.put("总路径", name.trim());
                }
                // 匹配空 定 位（同总 路 径处理逻辑）
                else if (currentCell.contains("空  定  位")) {
                    int index = currentCell.indexOf("合计时间");
                    String name = currentCell.substring(7,index).trim();
                    fields.put("空定位", name.trim());
                }
            }
        }
        return fields;
    }
}
